/**
 *
 */
package com.storm.lib.template;

import java.lang.reflect.Method;
import java.util.TimerTask;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

import com.storm.lib.runner.WhileRunner;
import com.storm.lib.util.ExceptionUtil;


/**
 * 类功能: 任务调度的工具类
 * @author johnny
 * @version 2010-11-29
 */
@Component
public class TaskTemplate {

	protected final Logger logger = Logger.getLogger(getClass());
	/**
	 *
	 * 方法功能:执行任务
	 * 更新时间:2010-11-29, 作者:johnny
	 * @param baseTask
	 * @param waitThread 是否主线程等待完成
	 */
	public void executeTaskOnce(Class clazz,boolean waitThread){
		  try {
			logger.debug("运行一次"+clazz.getName());
			Object obj = clazz.newInstance();
			Method m = null;
			m = clazz.getMethod("start", null);
			m.invoke(obj, new Object[0]);
//			SystemStatusCache.executedTasks.add((BaseTask) obj);
		} catch (Exception e) {
			ExceptionUtil.processException(e);
		}

	}

	/**
	 *
	 * 方法功能:执行任务
	 * 更新时间:2010-11-29, 作者:johnny
	 * @param baseTask
	 * @param waitThread 是否主线程等待完成
	 */
	public void executeTaskWhile(Class clazz){
		WhileRunner runner = new WhileRunner();
		runner.setClazz(clazz);
		runner.start();
//		SystemStatusCache.executedTasks.add((BaseTask) runner);
	}


	public static void main(String[] args) {
		new TaskTemplate().executeTaskWhile(TimerTask.class);
	}
}
